- 1402/03/05
- 0
- 80
مشکل در Ajax
سلام وقت بخیر
با انتخاب یک Company از لیست و با فرستادن Id آن به اکشن لیست، پروژه های آن شرکت را دریافت میکنم و در قالب ResultDto که در زیر کدها را گذاشتم به Ajax بر میگردانم. تا اینجا همه چیز به ظاهر خوب هست و حتی Issuccess و message در Ajax قابل دستیابی هست فقط لیستی که در data هست را نمیشناسه که بریزه داخل لیست پروژه. سه خط آخر Ajax مشکل دارم.
با تشکر.
کد Ajax را قرار دادم
function GetProjectList(Id) {
var postData = {
'Id': Id,
};
$.ajax({
contentType: 'application/x-www-form-urlencoded',
dataType: 'json',
type: "POST",
url: "GetProjectList",
data: postData,
success: function (result) {
if (result.issuccess == true) {
$('#CreateEquipmentEntryExit_Project').empty();
$.each(result.data, function (i) {
$('#CreateEquipmentEntryExit_Project').append($("<option></option>")
.val(result.data[i].Id).html(result.data[i].Title));
});
}
}
});
}
کد اکشن:
[HttpPost]
public IActionResult GetProjectList(long Id)
{
return Json(_getProjectService.GetProject(Id));
}
این قالب ارسال اطلاعات:
public class ResultDto<T>
{
public bool issuccess { get; set; }
public string message { get; set; }
public T data { get; set; }
}
- 1402/03/06
سلام
در این صورت احتمالا مشکل از جاهای زیر میتونه باشه:
-
ساختار دادهای که از سمت سرور برگشت داده میشود: از طریق console log در جاوااسکریپت یا ابزارهای توسعه دهنده مرورگر خود (Developer Tools)، پاسخ برگشتی سرور را بررسی کنید تا اطمینان حاصل کنید که دادهی برگشتی با ساختاری که در کد جاوااسکریپت خود در نظر گرفتهاید، منطبق است.
-
اینکه اطلاعات به درستی برای
ResultDto<T>سریالایز میشوند یا خیر. توجه کنید که برای کار با JSON، اسمهای متغیرها باید با حروف کوچک شروع شوند، پس ممکن است بایدissuccessرا بهIsSuccess، وmessageرا بهMessageتغییر دهید. همچنین، اطمینان حاصل کنید کهTدرResultDto<T>با نوع دادهای که میخواهید برگردانید مطابقت دارد. -
ممکن است اطلاعاتی که در
dataقرار دارد یک لیست باشد، ولی در اکشنGetProjectListفقط یک مورد برمیگردد. اگرGetProjectبیش از یک پروژه برمیگرداند، آن را به صورت یک لیست برگردانید.
- 1402/03/08
سلام. با تشکر از وقتی که گذاشتید.
با راهنمایی شما به جواب رسیدم و جواب را نیز در اینجا قرار می دهم.
function GetProjectList(Id) {
$("#CreateEquipmentEntryExit_Project").empty();
var postData = {
'Id': Id,
};
$.ajax({
contentType: 'application/x-www-form-urlencoded',
dataType: 'json',
type: "GET",
url: "GetProjectList",
data: postData,
success: function (result) {
if (result.issuccess == true) {
jQuery.each(result.data, function (i) {
var option = $('<option></option>').attr("value", result.data[i].id).text(result.data[i].title);
$("#CreateEquipmentEntryExit_Project").append(option);
});
}
}
});
}
[HttpGet]
public IActionResult GetProjectList(long Id)
{
return Json(_getProjectService.GetProject(Id));
}
پاسخی برای این باگ ارسال کنید
لطفا کدها را درون قطعه کد ارسال نمایید
برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری